//统一进行接口方法封装
import request from '@/api/request.js'
//获取所有频道标签的接口
export const getCannelApi=()=>request({url:'/v1_0/channels',method: 'GET',})
//登录的接口
export const loginApi=({mobile,code})=>request({url:'/v1_0/authorizations',method:'POST',data:{mobile,code}})
//获取用户选择频道 注意 用户如果没有登录 默认返回后台设置的默认频道
export const getuserApi=()=>request({url:'/v1_0/user/channels'})

//用户更改频道覆盖的接口
export const updateChannelSApi=({channels})=>request({url:'/v1_0/user/channels',method:'PUT',data:{
    channels
}})
//用户删除频道的接口
export const shanchuApi=(id)=>request({url:`/v1_0/user/channels/${id}`,method:'DELETE'})
//获取文章列表的接口
export const getarrlistApi=({channel_id,timestamp})=>request({url:'/v1_0/articles',
                                        params:{  //params参数会拼接到url路径后面
                                          channel_id,
                                          timestamp
                                        }})
//对文章不感兴趣的接口 url /v1_0/article/dislikes
export const articleDislikeAPI=(id)=>request({
    url: '/v1_0/article/dislikes', 
    method: 'POST',
    data: {
      target: id
    }
  })
//对文章反馈垃圾内容的接口
export const reportApi=({id,type})=>request({
    url:'/v1_0/article/reports',
    method: 'POST',
    data:{
      target:id,
      type:type,
      remark:''
    }
})
//获取  搜索联想菜单
export const searchApi=(keyword)=>request({url:`/v1_0/suggestion?q=${keyword}`})

//搜索结果列表
export const searchruest=({page,per_page,q})=>request({url:`/v1_0/search`,method: 'GET',params:{page,per_page,q}})


//获取文章详情页
export const detailApi=(id)=>request({url:`/v1_0/articles/${id}`})

//关注用户的接口

export const guanzhuApi=(id)=>request({url:`/v1_0/user/followings`,method:`POST`,data:{target:id}})

//取消关注用户的接口
export const quxiaoApi=(id)=>request({url:`/v1_0/user/followings/${id}`,method:'DELETE'})

//对文章点赞的接口
export const dianzanApi=(id)=>request({url:`/v1_0/article/likings`,method:'POST',data:{target:id}})

//取消对文章点赞的接口

export const quxiaodianApi=(id)=>request({url:`/v1_0/article/likings/${id}`,method:'DELETE'})

//获取文章当中评论的接口

export const pinglunApi=({source,offset=null,limit=10})=>request({url:'/v1_0/comments',params:{
    type:'a',
    source,
    offset,
    limit,
}})

//对评论点赞的接口
export const pingdianzan=(target)=>request({url:'/v1_0/comment/likings',method:'POST',data:{target}})

//取消对评论点赞的接口
export const pingquxiao=(id)=>request({url:`/v1_0/comment/likings/${id}`,method:'DELETE'})

//对文章进行评论的接口
//axios中data请求体传参数(如果值为null也会把参数名和值传递过去),params参数会忽略null值
export const tianpinglun=(target,content)=>request({url:'/v1_0/comments',method:'post',data:{target,content}})

//获取用户个人资料

export const yonghuziliao=()=>request({url:'/v1_0/user/profile'})

//获取用户自己的基本信息

export const jibenxinxi=()=>request({url:'/v1_0/user'})

//用户更新头像的接口
//Content-Type:application/json 这个是axios自己携带的,前提是你的请求体data是一个对象 会转换成json字符串发给后台
//Content-Type:multipart/form-data这个是浏览器携带的,前提是你的data请求体必须是一个FromData对象
//fd是外面传进来的一个表单对象 new FromData()
export const gengxintoux=(fd)=>request({url:'/v1_0/user/photo',method:'PATCH',data:fd})

//用户更新基本资料的接口
export const gengxin=(obj)=>{
  //判断有什么值 再带什么值给后台
  return request({url:'/v1_0/user/profile'
  ,method:'PATCH'  //patch为局部更新,put为全部更新
  ,data:obj//data是不会忽略值为null那对key+value,params才会忽略空的键值对
    // name,  //名称
    // gender,  //性别
    // birthday, //生日
    // real_name, //真实姓名
    // intro   //个人介绍
  })
}
//刷新获取新的token
export const shuaxintoken=()=>request({url:'/v1_0/authorizations',method:'put',headers:{
  //请求拦截器里面的请求头统一携带的是token,而这次要带的是refresh_token
  //所以在请求拦截器里面的判断就是为了这种情况判断
  Authorization: 'Bearer ' +localStorage.getItem('refresh_token')
}})